Content streaming, such as the streaming of audio, video, and/or text is becoming increasingly popular. The term “streaming” is typically used to indicate that the data representing the media is provided over a network to a client computer on an as-needed basis rather than being pre-delivered in its entirety before playback. Thus, the client computer renders streaming data as it is received from a network server, rather than waiting for an entire “file” to be delivered.
The widespread availability of streaming multimedia enables a variety of informational content that was not previously available over the Internet or other computer networks. Live content is one significant example of such content. Using streaming multimedia, audio, video, or audio/visual coverage of noteworthy events can be broadcast over the Internet as the events unfold. Similarly, television and radio stations can transmit their live content over the Internet.
However, one problem encountered in streaming media is that the ability to communicate data and control information between the client and server during the streaming is desirable. This problem becomes more apparent in the presence of load balancing devices situated between the client and server. For example, multiple servers may be configured to stream the same media and a load balancing device relied upon to balance the number of clients each server is handling to be approximately equal (or in accordance with some other configuration) across the multiple servers. In these situations, it is important to ensure commands or requests issued by the client to the server are routed to the same server (the server that is streaming the data to the client) rather than some other server by the load balancer.
The communicating via a connection between a streaming server and a client without breaking the connection described below solves these and other problems.